package cn.iocoder.yudao.module.polling.controller.admin.pollingplan.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 巡检计划分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PollingPlanPageReqVO extends PageParam {

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] createTime;

    @ApiModelProperty(value = "计划编号")
    private String planCode;

    @ApiModelProperty(value = "计划名称")
    private String planName;

    @ApiModelProperty(value = "部门ID")
    private Integer deptId;

    @ApiModelProperty(value = "负责人ID")
    private Integer userId;

    @ApiModelProperty(value = "巡检类型ID")
    private Integer ptType;

    @ApiModelProperty(value = "有效时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planValidTime;

    @ApiModelProperty(value = "提前生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planAdvanceTime;

    @ApiModelProperty(value = "计划开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planBeginTime;

    @ApiModelProperty(value = "计划结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planEndTime;

    @ApiModelProperty(value = "上次生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planLastTime;

    @ApiModelProperty(value = "下次生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planNextTime;

    @ApiModelProperty(value = "是否启用")
    private Integer planEnable;

    @ApiModelProperty(value = "状态")
    private Integer planState;

    @ApiModelProperty(value = "审批结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] planApproveEndTime;

    @ApiModelProperty(value = "周期")
    private Integer planPeriodVal;

    @ApiModelProperty(value = "周期标题")
    private String planPeriodTitle;

    @ApiModelProperty(value = "有效时间值")
    private Integer planValidTimeVal;

    @ApiModelProperty(value = "提前生成时间值")
    private Integer planAdvanceTimeVal;

    @ApiModelProperty(value = "提醒时间值")
    private Integer planRemindTimeVal;

    @ApiModelProperty(value = "当前节点")
    private String planNode;

    @ApiModelProperty(value = "执行时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] planExecuteTime;

    @ApiModelProperty(value = "异常数")
    private Integer planErrorCount;

    @ApiModelProperty(value = "漏掉数")
    private Integer planMissingCount;

}
